﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Threading;
using Utilities.QuickSql;
using MySql.Data;

namespace Deviseur_Cs2i_Car
{
    public partial class AddVoiCouleurCarross: Form
    {
        VoiCouleurCarross voicouleur;
        string UrlImage;
        public AddVoiCouleurCarross()
        {
            InitializeComponent();

            this.Text = "Ajouter une voiture to couleur";
            this.buttonadd.Text = "Ajouter";
            /*******/
            DataTable DataVoi = new DataTable();

            DataVoi.Columns.Add("IDVoi");
            DataVoi.Columns.Add("NomVoi");
            DataVoi.Columns.Add("NBPortes");
            DataVoi.Columns.Add("PrixBaseVoi");
            DataVoi.Columns.Add("NumCouleurCaross");
            DataVoi.Columns.Add("NumType");
            DataVoi.Columns.Add("ImageVoi");
            DataVoi.Rows.Add("0", "- Choisir une Voiture -");

            Table couleur = Program.Db.QueryTable("SELECT * FROM VOITURE");
            foreach (Record r in couleur)
                DataVoi.Rows.Add(r.Values[0], r.Values[1]);

            this.comboBoxVoi.DataSource = DataVoi;
            this.comboBoxVoi.ValueMember = "IDVoi";
            this.comboBoxVoi.DisplayMember = "NomVoi";


            this.comboBoxVoi.SelectedIndex = 0;
            /*******/
            DataTable DataCouleur = new DataTable();

            DataCouleur.Columns.Add("NumCouleurCaross");
            DataCouleur.Columns.Add("LibelleCouleurCaross");
            DataCouleur.Columns.Add("MetalCouleurCaross");
            DataCouleur.Columns.Add("PrixCouleurCaross");
            DataCouleur.Columns.Add("ImageCouleurCaross");
            DataCouleur.Rows.Add("0", "- Choisir une Couleur -");

            Table CouleurCarross = Program.Db.QueryTable("SELECT * FROM COULEURCAROSS");
            foreach (Record r in CouleurCarross)
                DataCouleur.Rows.Add(r.Values[0], r.Values[1]);

            this.comboBoxCouleurCarross.DataSource = DataCouleur;
            this.comboBoxCouleurCarross.ValueMember = "NumCouleurCaross";
            this.comboBoxCouleurCarross.DisplayMember = "LibelleCouleurCaross";

            this.comboBoxCouleurCarross.SelectedIndex = 0;
        }

        private void buttonadd_Click(object sender, EventArgs e)
        {
            if (comboBoxVoi.SelectedValue.ToString() != "0" && comboBoxCouleurCarross.SelectedValue.ToString() != "0")
            {
                if (this.buttonadd.Text == "Ajouter")
                {
                    voicouleur = new VoiCouleurCarross(Convert.ToInt32(this.comboBoxVoi.SelectedValue.ToString()), Convert.ToInt32(this.comboBoxCouleurCarross.SelectedValue.ToString()));
                    voicouleur.set_Image(this.UrlImage);
                    Thread addThread = new Thread(new ThreadStart(addVoiture_Thread));
                    addThread.Start();
                }
            }
            else
            {
                MessageBox.Show("Veuillez remplir tous les champs", "Erreur de saisie");
            }

        }
        private void addVoiture_Thread()
        {
            Invoke(new MethodInvoker(Disabled));
            voicouleur.new_VoiCouleurCarross();
            Invoke(new MethodInvoker(CloseFen));
        }

        private void Disabled()
        {
            this.comboBoxVoi.Enabled = false;
            this.comboBoxCouleurCarross.Enabled = false;
            this.buttonadd.Enabled = false;
        }
        private void CloseFen()
        {
            this.Close();
        }

        private void buttonParcourir_Click(object sender, EventArgs e)
        {
            this.openFileDialog.ShowDialog();
        }

        private void openFileDialog_FileOk(object sender, CancelEventArgs e)
        {
            this.UrlImage = this.openFileDialog.FileName.ToString();
            pictureBox1.Image = Image.FromStream(System.IO.File.OpenRead(this.openFileDialog.FileName.ToString()));
        }
    }
}
